package com.gengzp.system.facade;

import com.gengzp.common.model.role.entity.SysRole;

import java.util.List;

/**
 * @ClassName ISysRoleFacade
 * @Description 系统角色门面层
 * @Author gengzp
 * @Date 2025/5/17 2:14
 */
public interface ISysRoleFacade {

    /**
     * 根据id查询系统角色
     *
     * @param roleId 角色id
     * @return 系统角色
     */
    SysRole searchSysRoleById(Long roleId);

    /**
     * 编辑系统角色权限
     *
     * @param roleId          角色id
     * @param permissionCodes 权限编码集合
     */
    void editSysRolePermissions(Long roleId, List<String> permissionCodes);

    /**
     * 根据id查询系统角色集合
     *
     * @param roleIds 角色id集合
     * @return 系统角色集合
     */
    List<SysRole> searchSysRoleByIds(List<Long> roleIds);

    /**
     * 查询系统所有角色
     *
     * @return 系统所有角色集合
     */
    List<SysRole> searchAllSysRoles();

}
